For Win2003 you should figure a bare minimum of 384Meg per virtual machine, plus the VM overhead. Call it at least 500M per VM.
You also should go with a multicore processor, or a multiprocessor machine; you will absolutely bury a single processor machine if those VMs get busy.
I commonly run 2 Windows VMs in a Linux host on a single processor Athlon XP2700. It usually works OK unless I have all the OSs busy at the same time (I usually don't have that) in which case my system priorities allow me to maintain control of the machine since my mouse and keyboard have high priority, but things can get slow.
I commonly do network application development all within this one machine, so I often have gcc and Visual Studio compiling at the same time. That does slow things down.