Comparison between A non-clustered primary key and a covering index in terms of performance
By removing the primary key and adding a unique covering index with more columns, you are fundamentally changing how the table accepts data.  It may be that with the covering index in place, the table design no longer fits the purpose it was designed for.

Take for instance:

USE tempdb;

IF OBJECT_ID(N'dbo.T1', N'U') IS NOT NULL
DROP TABLE dbo.T1;
CREATE TABLE dbo.T1
(
    ID1 int NOT NULL
    , ID2 int NOT NULL
    , SomeDate datetime2(7) NOT NULL
    , CONSTRAINT PK_T1
        PRIMARY KEY NONCLUSTERED
        (ID1, ID2)
);

INSERT INTO dbo.T1 (ID1, ID2, SomeDate)
VALUES (1, 1, GETDATE())
WAITFOR DELAY '00:00:00.003';
INSERT INTO dbo.T1 (ID1, ID2, SomeDate)
VALUES (1, 1, GETDATE());


The output:


  (1 row(s) affected)
  Msg 2627, Level 14, State 1, Line 18
  Violation of PRIMARY KEY constraint 'PK_T1'. Cannot insert duplicate key in object 'dbo.T1'. The duplicate key value is (1, 1).
  The statement has been terminated.  


The table design is only allowing rows where the tuple (ID1, ID2) is unique.

Then look at this, where the primary key does not exist, and has been replaced with a wider unique covering index:

IF OBJECT_ID(N'dbo.T2', N'U') IS NOT NULL
DROP TABLE dbo.T2;
CREATE TABLE dbo.T2
(
    ID1 int NOT NULL
    , ID2 int NOT NULL
    , SomeDate datetime NOT NULL
);

CREATE UNIQUE INDEX IX_T2
ON dbo.T2 (ID1, ID2, SomeDate);

INSERT INTO dbo.T2 (ID1, ID2, SomeDate)
VALUES (1, 1, GETDATE())
WAITFOR DELAY '00:00:00.003';
INSERT INTO dbo.T2 (ID1, ID2, SomeDate)
VALUES (1, 1, GETDATE());



  (1 row(s) affected)  
  
  (1 row(s) affected)  


Table T2 has both rows, where arguably, the second insert should have failed and the table should only have a single row.  In this design, the table is now accepting rows where the tuple (ID1, ID2) are not necessarily unique.

I'd think carefully about your table design, and potentially just add the covering index without removing the primary key.