How to reduce table partition timing for existing table in SQL Server
ALTER PARTITION SCHEME PS_Tbl_3rdParatition  NEXT USED
  [SWPPartitionFG2]
  
  ALTER PARTITION FUNCTION PF_Tbl_3rdParatition()  SPLIT RANGE (1000) 
  
  ALTER INDEX [CidxTbl_3rdParatition] ON [dbo].[Tbl_3rdParatition ]
  REBUILD  WITH (SORT_IN_TEMPDB = OFF, ONLINE = ON, MAXDOP = 1)


Why are you rebuilding the clustered index after creating the new partition?  

When you SPLIT a RANGE LEFT function, the partition containing the new boundary is split. The new partition on SWPPartitionFG2 is created to the left of the SWPPartitionFG1 partition. The new partition on SWPPartitionFG2 becomes partition 2 and the original SWPPartitionFG1 partition is renumbered as partition 3. Existing rows in the spilt partition that are less than or equal to the new boundary are moved into the new partition during the process. This is a very expensive operation, requiring about 4 times the logging of normal DML. That is why one should plan to split only empty partitions, or at least ensure no rows must be moved.

It would be best to use a RANGE RIGHT function here so that incremental boundaries are created to the right of the SPLIT partition. Create a new RANGE RIGHT partition function and scheme and rebuild indexes specifying the new scheme with the 'DROP_EXISTING = ON` option. I would expect this to take much less time than the current operation and, going forward, the SPLIT to create incremental partition boundaries will be a fast meta-data only operation.

CREATE PARTITION FUNCTION PF_Tbl_3rdParatition_Right(NUMERIC(18,0)) AS RANGE LEFT 
FOR VALUES(500,1000);

CREATE PARTITION SCHEME PS_Tbl_3rdParatition_Right AS 
    PARTITION PF_Tbl_3rdParatition_Right TO ([PRIMARY],[SWPPartitionFG1],[SWPPartitionFG2]);

CREATE UNIQUE CLUSTERED INDEX CidxTbl_3rdParatition ON dbo.Tbl_3rdParatition(PK)
WITH(DROP_EXISTING = ON)
ON PS_Tbl_3rdParatition_Right(PK);


See Table Partitioning Best Practices for more information.