Yes, the training argument set the GPU corresponding to its local_rank value (for distributed training), so you have to make sure to pass along local_rank=2 when you instantiate them.
Though to execute a script on a given GPU, you would be better off setting the global env variable CUDA_VISIBLE_DEVICES.