Hi,
"R5 distibutes 3.3.3.0/24 with weight 32768 to both r3 and r4."
This is incorrect.
The Weight attribute is Cisco proprietary and is never sent with the prefix. It's always local only, i.e., assigned by the router itself only.
That's "why it shows 0 in R3 table".
So it shpoul be manipulate on the router itself always.
By default, trhe router assignes the weight 32768 to the prefixes it redistributes to BGP.
So you need either assign a higher value to prefixes received from R5 on routers R3 and R4 or to assign weight 0 to prefixes redistributed from OSFP to BGP (and assign a better Local Preference to the prefixes recived from R5, e.g., to be 100% sure).
HTH,
Milan