Hi lrsantos,
It's unfortunate that you have to maintain the original architecture of the code, because this type of application would most likely be better implemented in a single top-level VI with subVIs. However, if that is not an option, I understand.
So, using notifiers you are able to easily transfer information between "independently-running" VIs. There is a very good example program on this (Wait on Multiple Notifiers.vi) that ships with LabVIEW. You can access this by going to Help->Find Examples->Search "notifiers". This actually does almost exactly what you are thinking about doing. You can make a 3rd VI that reads the information off of the USB port and then sends that information (via Notifier1 or Notifier2, depending on the chamber) to its respective VI. For example, one VI would be waiting for a notification (and data) from Notifier1 and the other VI from Notifier2. You could then process this information accordingly. Like I mentioned, this shipping example should show you exactly how to do this with the exception of 1 thing. If you are passing notifiers between top-level VIs, you will need to write the "notifier out" to a global from your 3rd VI and read it back into your 1st and 2nd VIs (to be passed to Wait on Notification functions).
As far as priority goes, you won't need to do anything. The way that I described the "3rd" VI as operating is more like a Producer of data and the "1st" and "2nd" VIs act like Consumers. Therefore, the Consumer VIs don't ever really "access" the 3rd VI, they are actually sent data from the 3rd VI.
Hope this helps!
Travis H.
LabVIEW R&D
National Instruments