The answer given by RSolve
seems wrong to me, unless x[0]=1
:
Clear[p1, p, p0];
eq = {p[t] == (x[t - 1] p[t - 1])/(1 + b p[t - 1]), p[0] == p0};
sol = RSolveValue[eq, p, t];
p1[0] = p0;
p1[t_] := (x[t - 1] p1[t - 1])/(1 + b p1[t - 1]);
Simplify[Table[sol[t] == p1[t], {t, 0, 3}]]