The speed of the canoe at resting stream is 7 MPH.

The stream speed is 3 MPH and since the canoe is going upstream the effective velocity it has is 7 - 3 = 4 MPH.

Now after he started paddling the bobber started coming towards the canoe from 14 miles away at the speed of the stream ie., 3 MPH.

To simplify the situation we can add the velocity of the bobber to that of the effective velocity of the canoe which is 4MPH making its velocity equal to 7 MPH and the velocity bobber can be reduced to 0 MPH. This simplification is valid because in both the cases the relative velocity between the 2 is the same but the simplified case has the added benefit of simple calculations.

Now since effective velocity of the canoe is 7 MPH and the distance to bobber is 14 miles, the time taken will be

14/7 = 2 hours.