I have multiple subprocess Popens piped together in Python through their stdin/stdout as follows:
p1 = Popen(shlex.split(cmd1), stdout=sp.PIP