I don't think you really need to know 3000RPM as such, just that you get pulses faster than 1 every 20mS.
As such you could do something like
period = pulseIn(pin, HIGH);
period += pulseIn(pin, LOW);
if (period > 20000)
// too slow
This would give you a reading for one channel in two revolutions, x 40 that's 800mS to read all motors.
Rob