How to enforce the on the same batch dataloader that has multiple datasets will return the items from the same dataset

You could use a BatchSampler and load the entire batch in your __getitem__ method as described here.