I deal with this at my everyday work to generate printouts for hundreds of sections of detailed drawings, and I just cheated a small bit. The difference between you and me is, as opposed to 5-6 viewports, I only deal with one each layout.
What I do to overcome this slowness at my workplace is have one "master" layout and copy that layout with a desired name. Using (command "_LAYCOPY") works a bit quicker for me. Then depending on the number of viewports in each layout, you can do (setvar 'cvport 2, 3, 4, ...) and then (vla-ZoomWindow <modelspace>). Finally, do (setvar 'cvport 1) [which I think does exactly (command "_pspace").
Point being, every certain viewport has its own number that you can get and set using (getvar 'cvport) and (setvar 'cvport <integer>) respectively. As far as I know, cvport of 1 is always the paperspace. Hopefully it helps out.