You could use sklearn.model_selection.train_test_split directly by using the dataset indices (just create the indices using np.arange).
Once you have the indices for each dataset split, you could either use Subset and wrap the original dataset with the corresponding indices, or use a SubsetRandomSampler and pass these samplers to each DataLoader.