I had a similar problem, and this may not be ideal solution, but you can redirect the output to a text file and then read it from there:
tempFile = open("/tmp/myAppName.file.txt","w")
p2 = Popen(cmd, stdin=p1.stdout, stdout=PIPE, stderr=tempFile)
p2out = ""
#when you need the output, just do this:
with open("/tmp/myAppName.file.txt","r") as f:
p2out = f.read()