Cutting back on PhDs generated would be a good idea, but is probably an even harder sell (so much cheap labor!)
If postdocs are so prized, then one obvious solution is to reward them. Both the 2014 National Academies report and earlier reports urged US lab heads to consider creating senior staff scientist, or ‘superdoc’, positions. These would be higher-paid, permanent jobs for talented postdocs who have no desire to start their own labs.
This type of thing becoming more common would fix a lot of academic career problems. I think it would also be a very good first step in actually reducing the number of incoming PhD students, since the productivity of such a researcher will usually exceed the amount of graduate student you could replace them with.