Assume that the roots of $p(x)$ are real and distinct. Then we may let $\mu > 0$ denote the minimum distance between any two roots. Let $q(x)$ be any polynomial of degree $< n$ such that $|q(\alpha)| < (\mu/2)^n$ for any root $\alpha$ of $p(x)$. Then I claim that $g(x) = p(x) + q(x)$ has real roots.
Note that for a root $\alpha$ of $p(x)$, we have $|g(\alpha)| = |q(\alpha)| < (\mu/2)^n$. Yet
$$|g(\alpha)| = \prod |\alpha - \beta_i|$$
where the $\beta_i$ are the roots of $g$. It follows that $g(x)$ has a root $\beta$ such that $|\alpha - \beta| < \mu/2$. By the triangle inequality, $\alpha$ is uniquely determined by $\beta$ and this inequality. In particular, $g(x)$ has exactly one root within $\mu/2$ of each root of $p(x)$. Since $g(x)$ and $p(x)$ have the same degree, this exhausts all the roots of $g(x)$. Yet if $\beta$ was complex, then $|\alpha - \beta| = |\alpha - \overline{\beta}| < \mu/2$, a contradiction.
If the roots of $p(x)$ are not distinct, then one is in trouble, as the example $p(x) = x^2$ shows.
This can be thought of as an application of the $\mathbf{R}$-version of Krasner's Lemma, and is, in particular, an (exact) analog of the argument that the splitting field of a separable polynomial $f(x)$ over the $p$-adics is locally constant.
EDIT: I am confused about your second question. Let $f(x)$ be any polynomial of degree $n$ with real coefficients. Let $A$ and $B$ denote the maximum and minimum values of $f(x)$ on the interval $[0,n]$. Choose any $M > \max(|A|,|B|)$. A polynomial of degree $n$ may be defined by specifying $n+1$ of its values. Let $p(x)$ be the polynomial of degree $n$ such that the values $p(k)$ for $k = 0,\ldots,n$ are alternatively $-M$ and $+M$. By the intermediate value theorem, $p(x)$ has $n$ real roots.
Let $q(x) = f(x) - p(x)$. The signs of $q(k)$ also alternate for $k = 0, \ldots,n$ by construction. It follows that $q(x)$ also has $n$ real roots. Yet $p(x) + q(x) = f(x)$, and thus the sum of two polynomials with real roots does not satisfy any restrictions.

