I have the same issue. I solve it most of the time by having an expansion header on most of my boards. It brings up power, the second I2C port/SPI port, the second TX/RX and PORTB.1, PORTB.6, PORTB.7 and MCLR.

I use one 7 pin connector to connect my ICD3. PGC and PGD from each of the chips goes through a 1K resistor before going to the programming header.
There are 2 (sometimes 3) MCLR connections on the 7 pin header (one for each chip), and a multi-position switch on the ICD3 cable switches one line between the MCLR of chip 1 and the MCLR of chip 2 (and possibly, chip 3).

One connection can program all the chips sequentially (of course, you have to manually toggle the MCLR switch).

I have boards that have 3 8723's! Plenty of pins!