This can be done quite trivially by using scopes and coordinate transformations.
First thing, intstead of using the "advanced" coordinates routines, simply do:
\fill[orange] (3,4) circle (2.5pt);
which gives the same.
Then onwards to transformations.
The second rectangle can easily be drawn with the same commands and a scope
% Draw next rectangle, move everything 10cm to the right
\begin{scope}[xshift=10cm]
\draw (0,0) rectangle (8,6);
\node at (4,0.5) {$I_2$};
\node[label=$p'$] (p') at (3,4) {};
\fill[orange] (p') circle (2.5pt);
\end{scope}
Now for the remaining part.
You can do with another scope and transform the coordinates in that scope.
This can be done using the cm={x,xy,yx,y,(coord)} construct. It lets you create a matrix transformation for (x,y) coordinates.
The full thing becomes:
\begin{tikzpicture}[scale=.7]
\newcommand\Square{+(-1,-1) rectangle +(1,1)}
% Draw first rectangle and name
\draw (0,0) rectangle (8,6);
\node at (4,0.5) {$I_1$};
\node[label=$p$] (p) at (3,4) {};
% Fill square
\draw[fill=blue,fill opacity=0.1] (p) \Square;
\draw[->,>=latex] (p) ++(-1,-1) -- ++(2.5,0);
\draw[->,>=latex] (p) ++(-1,-1) -- ++(0,2.5);
\fill[orange] (p) circle (2.5pt);
% Draw next rectangle
\begin{scope}[xshift=10cm]
\draw (0,0) rectangle (8,6);
\node at (4,0.5) {$I_2$};
\node[label=$p'$] (p') at (3,4) {};
\fill[orange] (p') circle (2.5pt);
\begin{scope}[cm={.74,.74,-.74,.74,(0,0)}]
\draw[->,>=latex] (p') ++(-1,-1) -- ++(2.5,0);
\draw[->,>=latex] (p') ++(-1,-1) -- ++(0,2.5);
\draw[fill=blue,fill opacity=0.1] (p') \Square;
\end{scope}
\end{scope}
\draw[thick,->] (p) edge[bend right] (p');
\end{tikzpicture}
And it produces this:

You can easily adapt the different elements in the transformation.
\documentclass{...}, the required\usepackage's,\begin{document}, and\end{document}. That may seem tedious to you, but think of the extra work it represents for TeX.SX users willing to give you a hand. Help them help you: remove that one hurdle between you and a solution to your problem. – jub0bs Aug 28 '14 at 12:29