You can read the data just once (with the DataLoader). Then, create multiple models. Next, push each one to the desired device via to('cuda:id') and simply pass the data to each model.
Now, the training happens on different devices, so it should be executed in parallel.
If you want to train a model using multiple devices, set CUDA_VISIBLE_DEVICES.