Alex,
I'm not a VMWare admin, so your experience would probably be better than anything I could suggest for setting up VMware nodes. Is your build set up (such as with a multiconfiguration / matrix build) to use all 3 nodes for its work? If your build already uses all 3 slaves and all 3 are maxing out their CPU for 2+ hours, then I doubt there's much that you can do, as-is. If you need to reduce the build time by that much, you probably need to look at splitting up the build into more parallel pieces that can run simultaneously on more nodes. If your current build is all serial on one slave and the other two are idle, you need to look at how you can split up your build into multiple pieces that can run simultaneously on more than one slave at a time. For example, if you are building for multiple targets one at a time, see if you can change your build setup to build targets in parallel on different slaves rather than all of them sequential in one build.
In absence of other solutions, the only other thing that will likely give you significantly better performance is looking at your hardware configuration in regards to disk speed, processing power, etc. Make sure your slaves are set for unlimited CPU slices, etc. We've seen significant build speedups on some of our builds when going with solid state disks, but I don't know if that's feasible in your situation. Also look to see if you have other stuff running on your slave nodes that are slowing things down such as active virus scanners, inventory management tools, live disk backups, etc.
When you say you're maxing out the cpu, is that on the slave node, or host system that's running the VM's?
One thing that will help you figure out what's going on in regards to CPU usage is to look at the slave nodes during a build and seeing what process(es) are taking up the CPU, and see what you can do to optimize that. Is the 100% CPU usage continuous during the build, or only at brief times during the build? You need to look at your whole build and see what parts of the build are taking the most time. Is it the pull from Perforce, the build, the packaging, the verification, or some other step(s) that are taking a lot of time?
Scott