I would recommend not only dev testing the code but also QA testing it with a few scenarios before passing it on for actual QA testing.
Yes, dev testing takes a bit of time to complete properly with useful comments and such. However, you should look at this as a long-term investment. You won't see results in a week or even a month but over a course of time (a few months let's say even though it depends per team) you will start noticing that the overall standards of your team and the quality of the product has gone higher. There are a few reasons for this:
1) Code reviewing someone else's code helps you learn more either by critiquing what could be improved or being inspired by an elegant solution.
2) When you know that another developer is going to be looking at your code you are more likely to put more effort into making your code look prettier. You don't want to be known as the guy with the messy code. Need for validation is a powerful force.
3) Doing a quick QA testing before passing it on for actual QA testing for BAs/QA Engineers helps you make sure you are passing a more quality product and therefore there is less time spent on communication (when it fails back, they need to write steps how they reproduced it, devs need to switch context, all this takes more time). QA testing by devs just assures that it not only builds but also runs for and works for at least one scenario. Then during actual QA testing more scenarios could be used to test it more thoroughly.
With all these steps you should be able to create a culture where clean code is utilized for designing and developing any projects that come up.