I had 1 hour and 20 minutes wasted trying to figure out the problem with my configuration and it turned out to be that for DHCP request to work the ip address must be on the virtual-template else how would the router know which DHCP pool it'd assign to the client.
Server config
interface Virtual-Template1
ip address 155.1.35.1 255.255.255.0
no peer default ip address
ppp authentication chap
bba-group pppoe 1
virtual-template 1
interface FastEthernet0/1.54
encapsulation dot1Q 54
pppoe enable group 1
ip dhcp pool 1
network 155.1.35.0 255.255.255.0
username R3 password 0 CISCO
Client Config
interface Dialer1
ip address dhcp
encapsulation ppp
dialer pool 1
ppp chap hostname R3
ppp chap password 0 CISCO
!
interface FastEthernet0/1
no ip address
duplex auto
speed auto
pppoe enable group global
pppoe-client dial-pool-number 1