My husband is 31, has healthy diet and does heavy weightlifting 6 days a week. His dr. Said he has low testosterone in low 300s. What should he do?

Repeat Test. Before considering an evaluation into why his testosterone is low, much less therapy, he should repeat the test early in the morning when testosterone levels are highest. By most labs, low 300s is still normal. What's more important is how he feels. If he can lift heavy weights 6d/wk, it's difficult (although not impossible) to consider him hypogonadal. We treat the patient, not just the numbers.
See endocrinologist. At his age there must be some symptoms to cause his doctor to test for low t. If the testosterone is below normal on 2 occasions, lh and FSH levels may separate primary hypogonadism from secondary. He should have a free testosterone level .. Beyond that there are congenital and acquired causes for low testosterone, and this needs to be evaluated by an endocrinologist.
Check again. Men with low testosterone usually don't have the stamina for that kind of workout. I'd check on a monday morning about 7am and see what it is. If he replaces testosterone he runs the risk of jeopordizing fertility and needing replacement the rest of his life. Be careful. For more: www.Peedoc.Com @thepeedoc.
We need additional I. Is he symptomatic? Why was the level drawn? Without any symptoms of lw testosterone, i would just watch it and repeat the level in 3-6 months.