I went on a rant below, but this is actually a trick question.
If the time to maturity of the bond is 3 years, if its current yield to maturity is 4.5%, and if you hold the bond to maturity, then the annualized horizon return will be 4.5%, assuming all interim cash flows can be reinvested at the 4.5% yield. If cash flows cannot be reinvested at 4.5%, then the holding period return will drift away from 4.5% somewhat.
Given that the position is held to maturity, the instantaneous 100 bp change in yield is irrelevant, since any unrealized losses/gains because of the yield shift will be subsequently offset. Consider the simpler scenario of a zero coupon bond which has no coupon payments and only a principal payment on the maturity date. If yield increases substantially, you may encounter a substantial unrealized loss initially. But at maturity, if the bond doesn't default, you'll still get back the full principal amount, and that's the only quantity relevant for computing the total return over this time period.
However, the question uses a "Macauley duration" of 3. The only case where mac duration equals time to maturity is for zero coupon bonds and when yields are continuously compounded. In other cases, this 4.5% annualized return is a further approximation.
So the approximation comes from two fronts: 1) cash flows may not be reinvested at 4.5%, and 2) the time to maturity may not be the same as the mac duration.
Original rant below:
This is in my mind an extremely misleading question.
First of all, Macauley duration as a concept has historical value, but virtually no value in practical applications. By contrast, modified duration describes the percentage change in price for a small change in yield. Modified duration can be computed easily given Macauley duration and yield to maturity:
$$ \text{modified duration} = \frac{\text{Macauley duration}}{1 + \text{yield} / \text{compounding frequency}}. $$
In this case, assuming compounding frequency is semiannual (as is the case for virtually all bonds issued int he US), then the modified duration is
$$ D_\text{mod} = \frac{3.0}{1 + 4.5\% / 2} = 2.93 $$.
So if yield changes by 100 bp, the linear approximation of percentage change in bond price should be 2.93% -- not approximately 4.5% and not 3%.
As to the "approximately" part, this is because bond price is not a linear function of yield, rather a convex function. A better approximation requires "convexity":
$$ \text{percentage change in price} = -\text{mod duration}\times \Delta y + \frac{1}{2} \times \text{convexity} \times (\Delta y)^2. $$