The wait() method will set the returncode attribute of the Popen object when the child process exits. You should check that value to determine if the script should continue:
p = subprocess.Popen(['python', script, '-i', In])
p.wait()
if p.returncode != 0:
sys.exit(p.returncode)
Edit: You could also consider using subprocess.call(), which will return the returncode attribute directly. That way you wouldn't need to create a Popen object. If you prefer the try/except pattern, you can use subprocess.check_call(), which will throw a CalledProcessError if the child process exits with a non-zero status.