Your code works fine after adding the self.build() call and the missing super().__init__():
class Module(nn.Module):
   def __init__(self):
       super().__init__()
       self.build()

   def build(self):
      self.wt_dict = nn.ParameterDict()
      for i in range(3):
         self.wt_dict["weight_%s"%i] = nn.Parameter(torch.randn(1, 1)) 
         for j in range(14):
            self.wt_dict["weight_left_%s%s"%(i,j)] = nn.Parameter(torch.randn(1, 1))
            self.wt_dict["weight_right_%s%s"%(i,j)] = nn.Parameter(torch.randn(1, 1))
    
model = Module()
print(dict(model.named_parameters()))
> {'wt_dict.weight_0': Parameter containing:
  tensor([[-0.6057]], requires_grad=True), 'wt_dict.weight_left_00': Parameter containing:
  tensor([[1.0553]], requires_grad=True), 'wt_dict.weight_right_00': Parameter containing:
  ...