Argparse with subparsers
If you take a look at the argparse documentation, they suggest to use
set_defaults on each of the parsers to associate a processing function
depending on which parser is selected.  So if you do that then you can
get rid of the try/except blocks, which would improve things quite a
lot.

E.g.:

def handler_unity(res):
    if res.unity_deploy:
        print('Unity deploy')

    if res.unity_tagcheck:
        print('Unity tagcheck')

def handler_clc(res):
    if res.clc_deploy:
        print('Clc deploy')
...
parser_unity.set_defaults(func=handler_unity)
...
parser_clc.set_defaults(func=handler_clc)
...
res.func(res)