Initially, $\texttt{a = 6}$ and $\texttt{b = 10}$.
The function call is $\texttt{change(\&a, \&b)}$.
Inside the function, pointer $\texttt{p}$ points to $\texttt{a}$ and pointer $\texttt{q}$ points to $\texttt{b}$.
The statement $\texttt{*p = *p + 4}$ changes $\texttt{a}$.
So, $\texttt{a = 6 + 4 = 10}$.
The statement $\texttt{*q = *p + *q}$ changes $\texttt{b}$.
Here, $\texttt{*p = 10}$ and $\texttt{*q = 10}$.
So, $\texttt{b = 10 + 10 = 20}$.
Now, $\texttt{p = q}$ means local pointer $\texttt{p}$ starts pointing to $\texttt{b}$.
The statement $\texttt{*p = *p - 3}$ changes $\texttt{b}$.
So, $\texttt{b = 20 - 3 = 17}$.
Final values are $\texttt{a = 10}$ and $\texttt{b = 17}$.
Therefore, the output is $\texttt{10\ 17}$.
Answer: A.