Your issue is probably that you don't have enough USB bandwidth available, if your webcams support it switch to MJPEG instead of uncompressed frames. Usually any webcam supports MJPEG encoding to deliver frames to your PC.
Here a similar question on SO http://stackoverflow.com/questions/9781770/capturing-multiple-webcams-uvcvideo-with-opencv-on-linuxhttps://stackoverflow.com/questions/9781770/capturing-multiple-webcams-uvcvideo-with-opencv-on-linux