Hello! You would need to duplicate them and pass those in as your own arguments. Example:
command (single node, 2 GPUs):
python -m torch.distributed.launch --nproc_per_node=2 
train_script.py --master_addr=localhost --nproc_per_node=2

train_script.py:
import argparse
parser = argparse.ArgumentParser()
# This is always passed in by default
parser.add_argument("--local_rank", type=int)
# These are your own arguments
parser.add_argument("--master_addr", type=str)
parser.add_argument("--nproc_per_node", type=int)
args = parser.parse_args()
print(args)

output:
Namespace(local_rank=0, master_addr='localhost', nproc_per_node=2)
Namespace(local_rank=1, master_addr='localhost', nproc_per_node=2)

We would be interested in hearing why you need the nproc_per_node and master_addr in your training script, generally just the rank is sufficient?