Is the default output from the argparse module for no user input when .add_argument is used enough in terms of defensive coding for ensuring proper user input, or should we try to do something extra?
For no user input, yes, the default errors are sufficient defensive coding. The number of arguments is not the only thing you need to defend against, of course.