You could easily implement a Queue instance that delegates to three queues internally.  Then, you could use one aggregated object to push to or pull from the Queue.  And you could keep using the same instance since this is thread-locked (or you could use a threadlocal to support multiple threads).

I do worry about these three getting out of sync.