Starting with Python 3.3 you can set the timeout argument in seconds:
try:
return_code = subprocess.call('call prog.', shell=True, timeout=10)
except TimeoutExpired:
# handle timeout exception here which gets throw after
# 10 seconds in this example