Using python 3.5.1 64 bit on windows 8.1, I have installed sympy, 1.0.
from sympy import *
p = symbols('p')
factor('8 + 8/(2+p)')
8*(p + 3)/(p + 2)
8 + 8/(2+p)
You are not getting the wrong answer. All that
sympy.factor ensures is that a polynomial is factored into irreducible fractions over the rationals.
So the form given by
factor in version 1.0 is correct, and represents an irreducible fraction over the rationals.
Update : I ran your code on SymPy Live and you get the exact same fraction when using
factor, without the 8 factored out. They are the same. Note as Steven Rumbalski said, that evaluating and factoring are two different things.